package com.platform.common.utils.excel;
/**
 * 
 */


import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFRow;

/**
 * Excel导出配置，接口定义操作的具体场景实现
 * @author wei.gao
 */
public interface IExcelExportConfig<T> {
	/**
	 * 渲染结果
	 * @author wei.gao
	 */
	public enum RenderResult{
		EXIT, // 退出所有
		FINISH // 完成
	}
	
	/**
	 * Sheet名称
	 * @return
	 */
	public String getSheetName();
	
	/**
	 * 初始化标题
	 * @param head
	 */
	public List<String> getExcelHead();
	
	/**
	 * 获取数据集合
	 * @return
	 */
	public List<T> getData(int pageSize);

	/**
	 * 获取第几页
	 * @return
	 */
	public int getPageIndex();
	
	/**
	 * 获取页数
	 * @return
	 */
	public int getPageSize();
	
	/**
	 * 获取是否继续
	 * @return
	 */
	public boolean hasNext();
	
	/**
	 * 渲染行，返回0正常，返回1表示退出本次集合的渲染，返回2表示彻底退出
	 * @param row
	 * @param rowInd
	 * @param colInd
	 * @param entity
	 * @return
	 */
	public RenderResult renderRow(HSSFRow row, Integer rowInd, Integer colInd, T entity);
}
